package com.one.pass.config;

import java.lang.annotation.*;

// @Documented 注解表明这个注解应该被包含在 javadoc 中
@Documented
// @Retention 注解指定了注解的保留策略，这里是 RUNTIME，意味着注解将保留在运行时，因此可以通过反射访问
@Retention(RetentionPolicy.RUNTIME)
// @Target 注解指定了注解的适用目标，这里是 METHOD，意味着这个注解只能用于方法
@Target({ElementType.METHOD})
public @interface RedisLock {

    // 锁的前缀，默认值为空字符串
    String prefix() default "";

    // 锁的名称，默认值为空字符串
    String lockKey() default "";

    // 锁的时间（毫秒），默认值为3分钟
    long time() default 3 * 60 * 1000;

    // 锁的类型，默认值为 LockType.WAIT
    LockType lockType() default LockType.WAIT;

    // 错误信息，默认值为空字符串
    String error() default "";
}
